home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Snippets / OS Utilities / TimeZone.Daylight / InitMac.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-16  |  2.8 KB  |  136 lines  |  [TEXT/CWIE]

  1. #include <Dialogs.h>
  2. #include <Memory.h>
  3. #include <Windows.h>
  4. #include <QuickDraw.h>
  5. #include <Fonts.h>
  6. #include <GestaltEQU.h>
  7. #include <Traps.h>
  8. #include <TextEdit.h>
  9. #include <OSUtils.h>
  10.  
  11. #include "InitMac.h"
  12.  
  13. #define TrapMask 0x0800
  14.  
  15.  
  16. /*\
  17. |*| ---------------------------------------------------------------------
  18. |*| GLOBALS
  19. |*| ---------------------------------------------------------------------
  20. \*/
  21. SysEnvRec    TheWorld;
  22. Boolean        WNE_available;
  23. Boolean        HasGWorlds;
  24. Boolean        HasCQD;
  25.  
  26.  
  27.  
  28. /*\
  29. |*| ---------------------------------------------------------------------
  30. |*| NumToolboxTraps
  31. |*| ---------------------------------------------------------------------
  32. \*/
  33. short NumToolboxTraps (void)
  34. {
  35.     if (NGetTrapAddress(_InitGraf, ToolTrap) ==
  36.             NGetTrapAddress(0xAA6E, ToolTrap))
  37.         return(0x0200);
  38.     else
  39.         return(0x0400);
  40. }
  41.  
  42.  
  43. /*\
  44. |*| ---------------------------------------------------------------------
  45. |*| GetTrapType
  46. |*| ---------------------------------------------------------------------
  47. \*/
  48. TrapType GetTrapType (short theTrap)
  49. {
  50.     if ((theTrap & TrapMask) > 0)
  51.         return(ToolTrap);
  52.     else
  53.         return(OSTrap);
  54. }
  55.  
  56.  
  57. /*\
  58. |*| ---------------------------------------------------------------------
  59. |*| TrapAvailable
  60. |*| ---------------------------------------------------------------------
  61. \*/
  62. Boolean TrapAvailable (short theTrap)
  63. {
  64.  
  65.     TrapType    tType;
  66.  
  67.     tType = GetTrapType(theTrap);
  68.     if (tType == ToolTrap)
  69.         theTrap &= 0x07FF;
  70.     if (theTrap >= NumToolboxTraps())
  71.         theTrap = _Unimplemented;
  72.  
  73.     return (NGetTrapAddress(theTrap, tType) !=
  74.             NGetTrapAddress(_Unimplemented, ToolTrap));
  75. }
  76.  
  77.  
  78. /*\
  79. |*| ---------------------------------------------------------------------
  80. |*| WNEAvailable
  81. |*| ---------------------------------------------------------------------
  82. \*/
  83. Boolean WNEAvailable (void)
  84. {
  85.     return TrapAvailable(_WaitNextEvent);
  86. }
  87.  
  88.  
  89. /*\
  90. |*| ---------------------------------------------------------------------
  91. |*| CheckQuickDraw
  92. |*| ---------------------------------------------------------------------
  93. \*/
  94. void CheckQuickDraw (void)
  95. {
  96.     long      QDvers;  /* Version of QuickDraw on this machine */
  97.     
  98.     /* Find out if GWorlds and CQD are implemented on this machine */
  99.     Gestalt(gestaltQuickdrawVersion, &QDvers);
  100.  
  101.     HasGWorlds = (QDvers > gestaltOriginalQD && QDvers < gestalt8BitQD)
  102.                   || QDvers >= gestalt32BitQD;
  103.     
  104.     HasCQD = (QDvers >= gestalt8BitQD);
  105. }
  106.  
  107.  
  108. /*\
  109. |*| ---------------------------------------------------------------------
  110. |*| InitToolBox
  111. |*| ---------------------------------------------------------------------
  112. \*/
  113. void InitToolBox (short numberOfMasters)
  114. {
  115.     
  116.     InitGraf((Ptr) &qd.thePort);
  117.     InitFonts();
  118.     InitWindows();
  119.     InitMenus();
  120.     InitCursor();
  121.     TEInit();
  122.     FlushEvents(everyEvent, 0);
  123.     InitDialogs(nil);
  124.     
  125.     while(numberOfMasters--)
  126.         MoreMasters();
  127.         
  128.     MaxApplZone();
  129.     
  130.     SysEnvirons(1,&TheWorld);
  131.     
  132.     WNE_available = WNEAvailable();
  133.  
  134.     CheckQuickDraw ();
  135. }
  136.